package com.collection.searchings;

import java.util.Arrays;

public class BinarySearchCharArrayExample {
	public static void main(String[] args) {
	    //create char array
	    char charArray[] = {'a','b','d','e'};
	   
	    /*
	      To perform binary search on char array use
	      int binarySearch(char[] b, char value) of Arrays class. This method searches
	      the char array for specified char value using binary search algorithm.
	     
	      Please note that the char array MUST BE SORTED before it can be searched
	      using binarySearch method.
	     
	      This method returns the index of the value to be searched, if found in the
	      array.
	      Otherwise it returns (- (X) - 1)
	      where X is the index where the the search value would be inserted.
	      i.e. index of first element that is grater than the search
	      value or array.length, if all elements of an array are less
	      than the search value.
	    */
	   
	    //sort char array using Arrays.sort method
	    Arrays.sort(charArray);
	   
	    //value to search
	    char searchValue = 'b';
	   
	    //since 'b' is present in char array, index of it would be returned
	    int intResult = Arrays.binarySearch(charArray,searchValue);
	    System.out.println("Result of binary search of 'b' is : " + intResult);
	   
	    //lets search something which is not in char array !
	    searchValue = 'c';
	    intResult = Arrays.binarySearch(charArray,searchValue);
	    System.out.println("Result of binary search of 'c' is : " + intResult);
	 
	  }
}
